The present invention relates to computer aided design and drafting systems, and more particularly to interactively determining and displaying geometric relationships between three dimensional objects based on predetermined geometric constraints and position of an input device.
At the present time, the assembly of three dimensional (3D) objects to realistically depict physical models is based upon the utilization of geometric constraints that roughly correspond to real world physical behavior. Traditional computer-aided drafting (CAD) methods for assembling these types of digital models require that a computer operator indicate where and how 3D objects are to be positioned in digital space. The operator indicates a position and orientation for the 3D graphical objects and the computer subsequently produces the digital representation suggested by operator input. If the resulting representation is not correct, the operator deletes the incorrect graphics from the digital model and attempts to create a new representation that meets the desired criteria.
An operator may press a button on a mouse to provide a xe2x80x9ctentative pointxe2x80x9d to the computer to suggest where an object might be placed in 3D space. Depending upon the type of CAD software used, a second tentative point may be required to fully specify the 3D point of interest. The computer responds by placing a graphic xe2x80x9ccrosshairxe2x80x9d to indicate a precise location nearby the point suggested by the operator. If the point suggested by the operator is close to a key coordinate value from an existing 3D object in the digital design file, the computer places the tentative point at that location and redisplays the graphic object selected in a specified xe2x80x9chighlightxe2x80x9d color. If the resulting location is desired by the operator, a key is depressed on an input device to accept the tentative point and the specific coordinate values are used one time in an immediately following 3D object input operation. If the coordinate location and associated graphic object determined by the computer is not desired by the operator, the mouse button is pressed again to request a different tentative point.
Some CAD software provides a mode of interaction where the software automatically suggests geometrically interesting points near the cursor for consideration in CAD drafting operations. However, these systems work best in two dimensions where there is little ambiguity regarding the true location of the xe2x80x9cinteresting pointxe2x80x9d displayed.
Computer programs exist to create and edit solid models in three dimensions. These solids modeling programs provide interactive tools that allow the merging of individual graphic objects such as a cylinder, block, torus or other objects in order to create a new solid model object definition. Some of these programs offer interactive tools to provide a surface to surface cling mode that constrains the motion of one object""s surface to the surface of another. However these programs lack the ability to define a constrained assembly methodology.
Once the user accepts the coordinate location suggested by the computer, a second operation usually follows whereby the 3D object is moved to a correct geometric position, and possibly even rotated about one or more specific coordinate axes to produce the desired orientation. Once again, a tentative point mode of interaction may be used to establish the point of rotation, or else a default coordinate value indicating the origin point of the 3D object may be employed as a rotation point. To specify the exact degree of rotation, another tentative point may be obtained, a specific angle value may be provided by the operator, or else the operator may seek an orientation that is acceptable by moving the mouse, which in turn rotates the 3D object until a satisfactory orientation is obtained. Due to the difficulty of interacting in virtual 3D space with only two dimensional (2D) input devices, such as a mouse or the like, and output devices, such as a video monitor or the like, an operator may have to construct temporary geometric elements to fully constrain placement and orientation. Once the 3D object is in place, the temporary construction geometry is deleted from the 3D model.
To insure that the 3D model has been correctly assembled, the CAD operator desires to visualize the model from different perspective points. In present art, this is accomplished by indicating a point of interest in 3D space using one of the previously described coordinate specification techniques, setting a view distance from the point, specifying the axis of rotation for either the view screen or the virtual world, then either providing an explicit angle value or else interactively changing the viewer""s perspective point by moving the mouse or other input device. In general, this method of view manipulation is difficult to master as it requires advance knowledge of how the graphic display system is going to respond to modifications to the underlying mathematical transformation representing 3D space on a 2D video screen.
It is very difficult to create 3D designs using 2D tools, such as a mouse and a computer screen. Consider, for example, the difficulty of placing a 3D chair object at a proper location around a 3D table object. The operator typically uses one perspective, such as a top perspective, to place the chair object to a position that appears to be located adjacent the table object. After placing the chair, however, the operator changes perspective to a side view and discovers that the chair object was placed above the table object and not properly on the floor. The operator must then move the chair object down to the floor. Further, the operator may have to reposition the chair object one or more times to place the chair object at a desired location with respect to the table object. Even if more than one view is provided at a time, the operator is typically constrained to work in one view at a time, and thus must typically manipulate the object in several views before the proper geometric relationship is achieved.
It is an objective of the present invention to more rapidly produce computerized representations of 3D models that conform to predefined specifications for appearance, content and relationships among the graphic objects that are assembled to form the design.
It is a further objective of the present invention to eliminate the duty on the part of the computer operator of providing the correct position and orientation of graphic objects to assemble a valid 3D model of a design or system through a rule-based database to verify the juxtaposition of 3D objects Within the intended context of the design.
It is still a further objective of the present invention that the behavior of the graphics objects be constrained by a set of geometric specifications that are constructed in advance of digital data input operations and are encoded in the definition of the 3D objects.
It is still a further objective of the present invention that the position, orientation and projection of the physical model displayed on the screen can be easily altered through the intelligent manipulation of perspective points, viewing distances and rotations of the view without an operator having to master complex, multiple step commands for view manipulation.
It is still a further objective of the present invention that external procedures for the verification of 3D object relationships can occur during digital data input operations to avert the creation of invalid representations of designs.
A method and system according to the present invention replaces the multiple step mode of 3D coordinate input with a single step assembly methodology defined for each 3D object to be included in the 3D design. In particular, most positions and orientations for 3D objects are tied to the movement of the input device or cursor. A computer system implemented according to the present invention continuously calculates geometric relationships near the cursor for the operator to accept or reject. Predefined rules are maintained to limit the relationships of interest for 3D objects and to perform the geometric computations that provide other related functions such as tangent, offset, parallel, alignment, end point, major vector, divided segment, extended segment, intersection and other specific coordinate locations derived from the graphic objects that comprise a digital 3D design.
In general, there are two classes of intelligent assembly: explicit and inferred. In the case of explicit assembly, there are few options for the positioning of objects, sometimes only one. The case of a grounded electrical plug and outlet is an example of a single orientation. A valve installed in a pipe offers an example of a somewhat less explicit orientation of one object to another. In the case of planning office space, the number of candidate objects and their potential arrangements preclude an explicit definition of assembly. For many of these objects, assembly is inferred from the position of surrounding objects. For the case of a chair, it may sit under a desk, alongside a wall, next to a table or couch, or stand by itself. The position of a chair object into the office design depends upon a number of factors, including aesthetic preference.
Explicit assembly is handled by specifying a few key points or vectors in the geometric definition of the 3D object. Inferred assembly requires more flexibility and variety in the definition of the constraint geometry elements.
In addition to handling 3D objects that represent physical entities, a system and method according to the present invention also handles logical 3D objects such as perspective viewpoints and light sources. An interface is provided to accommodate external rule-based input verification procedures, and the newly input 3D objects inherit specific characteristics of the related 3D object already in the design. A system and method according to the present invention eliminates much of the labor required for the interactive selection, positioning, orientation and confirmation of 3D objects used in digital models of physical reality.
The present invention provides a method for positioning and displaying 3D objects within the virtually real space of a digital CAD system through geometric affinity between existing and new objects within a 3D design. A system and method according to the present invention uses predefined geometric relationships between 3D objects defined by geometric elements and other related 3D objects in the design and position of an input device, such as a mouse or trackball. The invention also contemplates that logical objects, rather than physical objects, may also be placed into an assembly of 3D objects. Such logical objects include things like the viewer""s perspective point, the camera angle used, the location of light sources, etc.
A geometry processing engine written according to the present invention interactively determines the desired positional relationship between graphic 3D objects and automatically generates the correct representation based on geometric constraints and position of the input device. The task of the CAD operator is shifted from instructing the computer on how to position and orient 3D objects to accepting or denying a geometric relationship interactively determined by the computer. Input parameters define constraints that presume the desired layout, so that more often than not the operator accepts the positions of the graphic objects and continues with the next task. This eliminates a great deal of time spent by the operator in constructing geometric relationships between 3D objects.
xe2x80x9cMagnetismxe2x80x9d is a metaphor that is used for the interactive graphic behavior of the elements. For example, the active position on the screen is controlled by the movements of a pointing device, usually a mouse, trackball, or similar type device. When a 3D object is to be added to a drawing, the object is moved with the cursor and automatically positioned with respect to any appropriate 3D object whenever the cursor partially occludes or passes over an underlying or existing 3D object. As the operator moves the object around in a 3D representation, such as on a computer screen, and as the cursor is moved to partially occlude other graphic elements, the graphic engine dynamically alters the position of the 3D object to agree with the assembly specifications with respect to the currently occluded element. When an occluded element is active, the new 3D object xe2x80x9cclingsxe2x80x9d to the element at a specific location, or else is moved along the extent of the geometric constraint within the occluded element following movements of the cursor (as moved by the input device). To a CAD operator, the 3D object appears to be xe2x80x9cmagneticallyxe2x80x9d attracted to the regions surrounding other 3D objects of the drawing. To cancel the magnetic cling behavior, the operator moves the cursor away from the existing 3D object a certain predetermined distance, whereupon the new 3D object behavior reverts to moving with the cursor and automatically aligning with other appropriate 3D objects.
As an option, the 3D object partially occluded by the cursor may be sectioned or cut away a certain distance to provide an exact space to accommodate the new 3D object. The distance can be defined in a variety of ways including the graphic extent of the 3D object, by a closed space definition that is included in the definition of the symbol, and by certain 3D geometric elements included in the definition of the 3D object. The present invention includes the capability to automatically align, orient and cut out space for a 3D object.
A method of interactively determining geometric relationships between 3D objects and displaying the 3D objects according to the present invention comprises the steps of detecting the position of an input device, moving a selected 3D graphic object relative to a graphic pointing symbol in a 3D representation according to the position of the input device, determining if the selected graphic object is moved to occlude an underlying 3D graphic object in the 3D representation, and positioning and displaying the selected graphic object with respect to the underlying graphic object according to predetermined geometric constraints and the position of the input device.
The method further may include a step of dynamically moving and displaying the selected graphic object according to movement of the input device and the predetermined geometric constraints while the selected graphic object occludes the underlying graphic object. The dynamically moving and displaying steps may further comprise the steps of clinging the selected graphic object to the underlying graphic object, and rotatably moving and displaying the selected graphic object about the underlying graphic object corresponding to movement of the input device. Occlusion may be based on a predefined geometric graphic element associated with the underlying graphic object. Positioning includes orienting and aligning the selected object according to predefined geometric constraints. Such geometric constraints may be defined in association with graphic constraint elements calculated interactively or may be incorporated in the definition of the graphic object.
A method according to the present invention of interactively displaying a 3D design based on geometric constraints and an input device, comprises the steps of displaying a first 3D graphic object having a defined geometric graphic constraint element in a 3D representation, moving and displaying a second 3D graphic object in the 3D representation relative to correspond to the position of the input device, determining if the second graphic object is moved to occlude the geometric graphic constraint element of the first graphic object, and dynamically positioning and displaying the first graphic object into a geometric relationship with the first graphic object according to predetermined geometric constraints defined by the geometric graphic constraint element and position of the input device.
The second graphic object is any type of graphic object including logical graphic objects such as logical cameras or light sources. For a logical camera object, a method according to the present invention may include steps of viewing the first graphic object from the viewpoint represented by the logical camera object, and manipulating the logical camera object by moving the input device to interactively change the display of the first graphic object according to position of the input device. In this manner, the operator may interactively change the viewpoint of a 3D design simply by moving the input device.
A graphics system for interactively determining geometric relationships between three dimensional objects and displaying the three dimensional objects according to the present invention includes a monitor for displaying graphics, a pointing device for indicating location on the monitor, a memory for storing a database of graphic display information and associated geometric constraints, a processor for executing a geometry processing engine based on the database, the geometric constraints and the position of the pointing device for displaying a representation of 3D graphics on the monitor, where the geometry processing engine detects the position of the pointing device, moves a selected 3D graphic object relative to a graphic pointing symbol on the monitor according to the position of the pointing device, determines if the selected graphic object is moved to occlude an underlying 3D graphic object, and if the selected graphic object occludes the underlying 3D graphic object in the 3D graphics, positions and displays the selected graphic object with respect to the underlying graphic object according to predetermined geometric constraints and the position of said pointing device.
A system and method according to the present invention therefore provides a solution to all of the problems listed above by controlling objects to behave in an xe2x80x9cassembly awarexe2x80x9d manner. Individual objects added to a design behave in a logical manner that is consistent with their intended utilization, installation procedure or other placement constraints. Since 3D objects behave in a logical manner, the level of knowledge required of the CAD operator knowledge decreases to the point where specialized training is not required. For example, much of the geometric instructions the operator provides to the CAD software to achieve the desired 3D assembly conventions is eliminated. This present invention thus opens an entirely new class of CAD applications that can be utilized by anyone familiar with the basics of computer interaction. Particularly, applications with wide spread appeal can be enabled for relative computer novices. This savings of time translate into higher productivity and drastically less training on the part of the CAD operator.